#ifndef WINDOW_H_
#define WINDOW_H_
#include "IWindow.h"
#include "def.h"
#include <ncurses/cursesp.h>

class Window : public IWindow {
    public:
        Window ();
        virtual ~Window ();
        //Print actual data of the buffer on the window
        virtual int Display(int focus);
        //Updates screen buffer
        virtual void Update();
        //Does actual paint on screen
        virtual void Paint();
        virtual void Clean();
        virtual void AddWindow(IWindow* win);
        virtual void RemoveWindow(IWindow* win);
        virtual void Locate(int y, int x, int h, int w);
        virtual void Resize_LT(int x, int y);
        virtual void Resize_RB(int x, int y);
        virtual void Move(int x, int y);
        virtual void Enable();
        virtual void Disable();
        virtual void Top();
        virtual void SetCurrent();
    protected:
        NCursesPanel m_window;
        static Window* g_current_win;
};

#endif //WINDOW_H_
